GLX treats the OpenGL command stream and the X request stream as two independent sequences of commands. These streams may execute at different rates. GLX supports glXWaitX and glXWaitGL that allow the X and OpenGL command streams to be explicitly synchronized. glXWaitGL prevents subsequent X requests from executing until any outstanding OpenGL commands have completed. glXWaitX prevents subsequent OpenGL commands from executing until any outstanding X requests have completed. When using indirect rendering, these calls force their appropriate sequentiality without the cost of a round-trip. These calls can be thought of as synchronization tokens actually embedded in the X protocol stream. When direct rendering, a glXWaitX does require a XSync to ensure an X requests have completed.